# -*- coding: utf-8 -*-

import pandas as pd, numpy as np, matplotlib.pyplot as plt

def co2_gdp_plot():
    # 读取世界银行气候变化数据集
    data = pd.read_excel("ClimateChange.xlsx")


    '''
    补充代码：
    1. 查看数据文件结构。
    2. 选择 CO2 和 GDP 数据。
    3. 针对缺失数据进行处理。
    4. 分国家计算数据总和。
    5. 归一化数据。
    6. 绘图。
    '''
    gdp = data[data['Series code'] == 'NY.GDP.MKTP.CD'].set_index('Country code').iloc[:,5:]
    co2 = data[data['Series code'] == 'EN.ATM.CO2E.KT'].set_index('Country code').iloc[:,5:]
    gdp.replace({'..':pd.np.nan}, inplace = True)
    co2.replace({'..':pd.np.nan}, inplace = True)
    gdp = gdp.fillna(method='ffill', axis=1).fillna(method='bfill', axis=1)
    co2 = co2.fillna(method='ffill', axis=1).fillna(method='bfill', axis=1)
    df = pd.concat([co2.sum(axis=1),gdp.sum(axis=1)], axis=1)
    df.columns = ['GDP-SUM','CO2-SUM']
    df.fillna(0,inplace=True)
    df = df.apply(lambda x:(x-x.min())/(x.max()-x.min()))
    lables,position=[],[]
    for i in range(len(df)):
        if df.index[i] in ['USA','CHN','FRA','RUS','GBR']:
            lables.append(df.index[i])
            position.append(i)
    # 务必在绘图前子图对象，并返回 fig
    fig = plt.subplot()
    df.plot(title='GDP-CO2',ax=fig,kind='line')
    plt.xlabel('Countries')
    plt.ylabel('Values')
    plt.xticks(position, lables, rotation='vertical')
    plt.show()
    # 务必返回中国所对应的数据（归一化后，且保留 3 位小数）
    china = np.round(df['CHN':'CHN'].values, 3).tolist()[0]

    # 按示例顺序返回 fig 对象，以及中国对应的数据列表
    return fig, china

#/home/shiyanlou/anaconda3/bin/python challenge7_2.py
